Code 39 Barcode Scanner
Add Code 39 scanning to your mobile application or website
Trusted by 300+ global
industry leaders
Turn smartphones into fast & reliable Code 39 scanners
The Scanbot Code 39 Barcode Scanner SDK delivers exceptional performance even under challenging conditions – such as code damage or when scanning small codes commonly found in industrial applications like warehousing and manufacturing. With a scanning speed of under 0.04 seconds, your users get instant reads for seamless workflows.
Key benefits include:
- Offline scanning: The Scanbot SDK works 100% on-device, ensuring both uninterrupted performance and data security.
- Enterprise-grade support: Get dedicated chat support via Slack, Teams or email for any issue. Includes free assistance during the integration phase.
- Flat pricing model: Cost stays the same no matter how much your user base or scanning volume grows.


How this scanning tool works
Our free online Code 39 barcode reader scans codes directly through your camera or on imported images. This barcode scanner works in any browser, no app download or signup needed. Enjoy real-time camera view scanning or decode barcodes on pictures in seconds – just point your camera at the Code 39 barcode or import an image file to instantly access the encoded data.
This tool is powered by the Scanbot Barcode Scanner SDK!
(We don’t store any images or data you import. Everything stays on your device.)
Understanding Code 39 barcodes
What is a Code 39 barcode?
Code 39 is a one-dimensional (1D) barcode symbology defined in ISO/IEC 16388:2007. Developed in 1974, it was among the first barcodes to support alphanumeric data, including letters, numbers, and some special characters. Each barcode includes start and stop characters (an asterisk *) that help barcode scanners identify the code’s boundaries. Additionally, Code 39 includes an optional check character or check digit for enhanced error detection.
Code 39 barcodes are easily scanned by most barcode scanners and support manual verification thanks to their text interpretation below the barcode.
Structure and components
Code 39 relies on patterns of wide and narrow bars and spaces to encode characters. Each character is represented by 9 elements—5 bars and 4 spaces. These include 3 wide and 6 narrow elements, creating the name “3 of 9.”
Code 39 barcodes consist of the following key components:
- Quiet zones: Blank areas on both sides of the barcode that ensure proper scanning and readability.
- Start character: An asterisk (*) that indicates the beginning of the barcode.
- Data character: The main content section where information is encoded. Code 39 can encode 43 characters: numeric digits (0-9), uppercase letters (A-Z), seven special characters (-, ., $, /, +, %, and space).
- Stop character: An asterisk (*) that indicates the end of the barcode.
Encoding and error detection
Code 39 uses a pattern of 5 bars and 4 spaces to represent each character. Out of those 9 positions, 3 are always wide (either bars or spaces), and 6 are narrow. Each character is assigned a numeric value, as shown in the table below.
These values are critical for calculating the checksum. This is an optional modulo 10 or 43 check character added to the end of the Code 39 barcode for enhanced error detection.
Here’s how the checksum is calculated:
- Assign numeric values to each character in the data portion of the barcode (using the table).
- Sum all those numeric values together.
- Divide the sum by 43 (because there are 43 possible characters, 0-42).
- The remainder of that division is the checksum value.
- Look up the character corresponding to that checksum value in the table. This character is appended to the barcode as the checksum character.
Applications of Code 39 barcodes
Manufacturing and automotive
Code 39 is a preferred symbology in the automotive industry and factory automation for tracking components, products, and work-in-progress items. The Code 39 was standardized and adopted by the Automotive Industry Action Group and is now used as the standard VIN Barcode.
Healthcare
In the healthcare sector, Code 39 barcodes are crucial for patient identification, medication management, and equipment tracking. The Health Industry Bar Code Council (HIBCC) also uses them on wristbands, medication packaging, and medical devices.
Logistics
Code 39 barcodes are widely adopted for logistics applications, including inventory management, warehouse operations, and shipping processes.
Military and government
The United States Department of Defense uses Code 39 under the LOGMARS (Logistics Applications of Automated Marking and Reading Symbols) standard to label supplies and equipment.
Advantages of Code 39 barcodes
- Compact size: They store large amounts of data in a small space, making them suitable for use on compact or irregularly shaped surfaces.
- Error detection: Code 39’s self-checking structure and optional checksum enable basic error detection, but no error correction.
- Scalability: Code 39 offers flexibility with variable sizes, allowing for encoding of up to 43 characters, making it adaptable to different data capacity needs.
- Versatility: Omnidirectional scanning ensures seamless decoding from any angle.
Why choose the Scanbot SDK for Code 39 scanning?
The Scanbot Barcode Scanner SDK is specifically designed to handle the challenges of decoding Code 39 barcodes in real-world scenarios.
What sets us apart:
- Exceptional performance: Reliably decodes even damaged, low-contrast or distorted barcodes.
- High-speed scanning: Read Code 39 barcodes in as little as 0.04 seconds.
- Cross-platform compatibility: Easily integrate with Android, iOS, cross-platform, web, Windows, and Linux platforms.
- Customizable UI: Customize the ready-to-use components to match your app or website design.
- Privacy-first: Operates offline for complete data security.
Whether your use case involves Code 39 barcodes, QR codes, or any other barcode, the Scanbot SDK delivers the accuracy, speed, and reliability you need to succeed.
Related Barcode Types:
- Data Matrix Scanner
- QR Code Scanner
- PDF417 Scanner
- Aztec Code Scanner
- Code 128 Scanner
- EAN Scanner
- UPC Scanner
- Micro QR Code Scanner
- GS1 DataBar Scanner
- GS1 DataMatrix Scanner
- GS1-128 Scanner
- MaxiCode Scanner
- ITF Scanner
- Codabar Scanner
- Intelligent Mail Barcode Scanner
- rMQR Code Scanner
- Royal Mail Scanner
- Micro PDF417 Scanner
Frequently Asked Questions
What is the difference between a Code 39 and Code 128 barcode?
Code 39 encodes fewer characters and is less dense, while Code 128 supports a larger character set and is more compact, allowing for higher data density.
What are the limitations of Code 39 barcodes?
Code 39 has limited character support, encoding only uppercase letters, numbers, and a few symbols. It also has lower data density compared to barcodes like Code 128, which can encode more characters in a smaller space.
How could Scanbot SDK help you with Code 39 barcode scanning?
The Scanbot Code 39 barcode scanner delivers exceptional performance in challenging environments, including damaged or curved barcodes, with a scanning speed of under 0.04 seconds for seamless workflows. Try it now with a free trial license.